#pragma once
#include <SFML/Window/Event.hpp>
#include <nice2d/predef.h>

class Input
{
public:
    Input();
    virtual ~Input();
public:
    void setInputMessageTarget(ObjectPointer node);

    virtual void onWindowClose();
    virtual void onWindowSizeChanged(int32_t width, int32_t height);

    virtual void onTextInput(uint32_t ch);
    virtual void onKeyPressed(const sf::Event::KeyEvent &event);
    virtual void onKeyReleased(const sf::Event::KeyEvent &event);

    virtual void onMousePressed(const sf::Event::MouseButtonEvent &button);
    virtual void onMouseReleased(const sf::Event::MouseButtonEvent &button);
};
